为了账号安全,请及时绑定邮箱和手机立即绑定

CSS Sprite 精灵图

标签:
Html/CSS

CSS Sprite

CSS Sprites叫 CSS精灵或者雪碧图,是一种网页图片应用处理方式。
CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中。
再利用CSS的"background-image","background-repeat","background-position"的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

为什么建议使用CSS Sprite

在网页访问中,客户端每需要访问一张图片都会向服务器发送请求,所以,访问的图片数量越多,请求次数也就越多,造成延迟的可能性也就越大。

所以,CSS Sprites技术加速的关键,并不是降低质量,而是减少个数,当然随之而来的增加内存消耗,CSS Sprites图片繁琐的合成等缺点在网站性能的提升前,也就不足为道了。

CSS Sprites 的优点:

  • 减少图片的字节

  • 减少了网页的http请求,从而大大的提高了页面的性能

  • 减少命名难的问题

CSS Sprites 的缺点:

  • 在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。

  • 在宽屏,高分辨率的屏幕下的自适应页面,图片如果不够宽,很容易出现背景断裂。

  • CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。

再说说background-position

只有真正的了解background-position的特性才能在需要的场景更好的运用它。

background-position 属性设置背景图像的起始位置。
这个属性设置背景原图像(由 background-image 定义)的位置,背景图像如果要重复,将从这一点开始。
提示:
background-position属性设置背景原图像(由 background-image 定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。

了解了background-position属性的用法,使用雪碧图之前,我们需要知道雪碧图中各个图标的位置。


webp


从上面的图片不难看出雪碧图中各个小图标(icon)在整张雪碧图的起始位置,例如第一个图标(裙子)在雪碧图的起始位置为 x:0,y:0,第二个图标(鞋子)在雪碧图的起始位置为 x:0,y:50px,第三个图标(足球)在雪碧图的起始位置为x:0,y:100px,依次类推可以得出各个图片相对于雪碧图的起始位置。

以上面的雪碧图为例(实际雪碧图中各个小图片的起始位置和上面的展示图不同)用一个Demo来阐述它的使用方法。

HTML

<div class="box">
    <span class="icon1"></span>
    <span class="icon2"></span>
    <span class="icon3"></span>
    <span class="icon4"></span></div>

CSS

    <style>
        .box {          width: 600px; 
          height:300px; 
          border: 3px solid #ccc; 
          background-color: #8064A2; 
         }         span {          display: inline-block; 
          width: 25px; 
          height: 25px; 
          border: 3px solid #ccc;          background-image: url(css/img/sidebar.png); 
          background-repeat: no-repeat;          margin: 5px;
         }        .icon1 {          background-position: 0 0;
         }        .icon2 {          background-position: -40px 0;
         }        .icon3 {          background-position: 0 -25px;
         }        .icon4 {          background-position: -40px -25px;
         }    </style>

效果图


webp

得到的页面



作者:evenyao
链接:https://www.jianshu.com/p/0f1b4b8e191b


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消